<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <script>


        // 函数是有参数的，参数可以是数字，字符串，也可以是数组
        //    当参数是基本数据类型时，传参传的是值 ---- 形参不影响实参
        //    当参数是引用数据类型是，传参传的是地址 --- 形参和实参共享地址 --- 形参的改变会影响实参




        // function fn(b) {
        //     var b = a = 4 ;
        //     b++ ;
        // }


        // var a = 4 ;
        // fn(a) ;
        // console.log(a) ;   // 4


        function fn(a) {
            // var a = a = 4 ;
            a++ ;
        }


        var a = 4 ;
        fn(a) ;  // 把变量a的值也就是4传入到了函数中
        console.log(a) ;   // 4






        function fo(arr) {
            // var arr = arr1 ;
            arr.push('a') ;
        }


        var arr1 = [1,2,3] ;
        fo(arr1) ;  // 把arr1存的地址传进去了，导致形参arr和实参arr1共享了地址，因此形参的改变会直接改变arr1
        console.log(arr1) ;





























































        // function rand(min , max) {
        //     var n = parseInt(Math.random() * (max - min)) + min
        //     return n ;
        // }



        // var n = [1,3,4] ;
        // n.push(rand(0,10)) ;

    </script>
    
</body>
</html>